/*
arr = [['a','b'],['1','2']] => [a1,a2,b1,b2]
 */
const permutate = (arr) => {
    // res为第一个数组
    let res = arr[0].slice();

    // 从第二个数组开始遍历  需要依赖于前一个结果
    for (let i = 1; i < arr.length; i++) {
        // 记录前面的结果
        const pre = res.slice();
        // 得到新的结果
        res = [];
        pre.forEach(item => {
            arr[i].forEach(item2 => {
                res.push(item + item2);
            })
        })
    }
    return res
}

console.log(permutate([['A', 'B'], ['a', 'b'], [1, 2],['c','d','e']]));
